property TRect a pristup k jednotlivym polozkam

Otázka od: petr palicka

6. 11. 2003 13:33

Ahoj,

   mam do TFormu do sekce PROTECTED doplneou promennou
a do sekce PUBLIC proerty asi nasledovne:

   TfPriklad=class(TForm)
...
...
...
   protected
     FViewRect: TRect;
   public
     property ViewRect: TRect read FViewRect write FViewRect;
   end;

   No a potom, kdyz v kodu zousim priradit neco do
ViewRect.Left, tak to nejde. Netusite nekdo proc?
Pise to "Left side cannot be assigned to". Pristup
FViewRect:=neco funguje :/

dekuji

Peca





----------
* www.inMail.sk - Vasa emailova adresa na cely zivot ZDARMA
* Mail neobsahuje virusy. Zkontrolovane antivirusom NOD32 (www.eset.sk)
* www.SlovakNET.sk - profesionalny webhosting, domena .SK ZADARMO
* Zoner Media Explorer 5 - stiahnite si pomocnika pre digitalnu fotografiu
(zme.zoner.sk)

Odpovedá: delphikonf@proxima-soft.sk

6. 11. 2003 14:35

Daj si namiesto protected public, a pojde ti to.

-----Original Message-----
From: delphi-l-owner@clexpert.cz [mailto:delphi-l-owner@clexpert.cz] On
Behalf Of petr palicka
Sent: Thursday, November 06, 2003 1:19 PM
To: delphi-l@clexpert.cz
Subject: property TRect a pristup k jednotlivym polozkam


Ahoj,

   mam do TFormu do sekce PROTECTED doplneou promennou
a do sekce PUBLIC proerty asi nasledovne:

   TfPriklad=class(TForm)
....
....
....
   protected
     FViewRect: TRect;
   public
     property ViewRect: TRect read FViewRect write FViewRect;
   end;

   No a potom, kdyz v kodu zousim priradit neco do ViewRect.Left, tak to
nejde. Netusite nekdo proc? Pise to "Left side cannot be assigned to".
Pristup FViewRect:=neco funguje :/

dekuji

Peca



---
Prichadzajuca sprava neobsahuje virusy.
Skontrolovane antivirusovym systemom AVG (http://www.grisoft.cz).
Verzia: 6.0.530 / Virusova databaza: 325 - datum vydania: 22. 10. 2003
 




----------
* www.inMail.sk - Vasa emailova adresa na cely zivot ZDARMA
* Mail neobsahuje virusy. Zkontrolovane antivirusom NOD32 (www.eset.sk)
* www.SlovakNET.sk - profesionalny webhosting, domena .SK ZADARMO
* Zoner Media Explorer 5 - stiahnite si pomocnika pre digitalnu fotografiu
(zme.zoner.sk)

Odpovedá: Vit Krska

6. 11. 2003 15:26

a nebo pouzij funkci Rect. pak:
ViewRect:= Rect(x1,y1,x2,y2);

>
> Daj si namiesto protected public, a pojde ti to.
>
>
> Ahoj,
>
> mam do TFormu do sekce PROTECTED doplneou promennou
> a do sekce PUBLIC proerty asi nasledovne:
>
> TfPriklad=class(TForm)
> ....
> ....
> ....
> protected
> FViewRect: TRect;
> public
> property ViewRect: TRect read FViewRect write FViewRect;
> end;
>
> No a potom, kdyz v kodu zousim priradit neco do
> ViewRect.Left, tak to
> nejde. Netusite nekdo proc? Pise to "Left side cannot be assigned to".
> Pristup FViewRect:=neco funguje :/
>
> dekuji
>
> Peca
>
>
>
> ---
> Prichadzajuca sprava neobsahuje virusy.
> Skontrolovane antivirusovym systemom AVG (http://www.grisoft.cz).
> Verzia: 6.0.530 / Virusova databaza: 325 - datum vydania: 22. 10. 2003
>
>
>





----------
* www.inMail.sk - Vasa emailova adresa na cely zivot ZDARMA
* Mail neobsahuje virusy. Zkontrolovane antivirusom NOD32 (www.eset.sk)
* www.SlovakNET.sk - profesionalny webhosting, domena .SK ZADARMO
* Zoner Media Explorer 5 - stiahnite si pomocnika pre digitalnu fotografiu
(zme.zoner.sk)

Odpovedá: Kancelar

6. 11. 2003 15:36


Je to proto, ze do vlastnosti, ktera je typu zaznam se da zapisovat
zase jenom ta sama struktura. K jednotlivym polozkam pristup neni.
Musi se to udelat takto:

...
var tmpViewRect: TRect;
...
tmpViewRect.Left := hodnota;
ViewRect := tmpViewRectangle;
...

Druha moznost je, nadefinovat vlastnosti pro kazdou polozku zvlast:
...
protected
   FViewRect: TRect;
   public
     property RectLeft: integer read getRectLeft write SetRectLeft;
     ...
   end;

...
function getRectLeft: integer;
begin
  Result:= FViewRect.Left;
end;

procedure setRectLeft(value: integer);
begin
  FViewRect.Left:= value;
end;
...

Mejte se pekne

Slavoj Pisek


> Ahoj,

> mam do TFormu do sekce PROTECTED doplneou promennou
> a do sekce PUBLIC proerty asi nasledovne:

> TfPriklad=class(TForm)
> ...
> ...
> ...
> protected
> FViewRect: TRect;
> public
> property ViewRect: TRect read FViewRect write FViewRect;
> end;

> No a potom, kdyz v kodu zousim priradit neco do
> ViewRect.Left, tak to nejde. Netusite nekdo proc?
> Pise to "Left side cannot be assigned to". Pristup
> FViewRect:=neco funguje :/

> dekuji

> Peca








----------
* www.inMail.sk - Vasa emailova adresa na cely zivot ZDARMA
* Mail neobsahuje virusy. Zkontrolovane antivirusom NOD32 (www.eset.sk)
* www.SlovakNET.sk - profesionalny webhosting, domena .SK ZADARMO
* Zoner Media Explorer 5 - stiahnite si pomocnika pre digitalnu fotografiu
(zme.zoner.sk)

Odpovedá: petr palicka

7. 11. 2003 7:39

> Daj si namiesto protected public, a pojde ti to.

to je principielne spatny pristup. nemuzu zverejnit
interni promennou objektu. ja potrebuju mit jeji
obsluhu plne pod kontrolou. v pripade, ze promenna
je protected a pristup je pomoci verejne property,
muzu si na jeji cteni a zapis psat funkce, ktere
zajisti nejakou dalsi funkcnost, jako kontorla
rozzsaho, prekresleni vyrezu a pod.

peca





----------
* www.inMail.sk - Vasa emailova adresa na cely zivot ZDARMA
* Mail neobsahuje virusy. Zkontrolovane antivirusom NOD32 (www.eset.sk)
* www.SlovakNET.sk - profesionalny webhosting, domena .SK ZADARMO
* Zoner Media Explorer 5 - stiahnite si pomocnika pre digitalnu fotografiu
(zme.zoner.sk)

Odpovedá: petr palicka

7. 11. 2003 7:34



Vit Krska wrote:

> a nebo pouzij funkci Rect. pak:
> ViewRect:= Rect(x1,y1,x2,y2);

tak to delam ted. pres noc se mi
to rozlezelo a ono by to byla vlastne
blbost, neb bych obchazel zapouzdreni
objektu. reseni by bylo vytvorit object
TViewRect (ne record jako je TRect) a
ten by mel vlastnosti, ktere by sly
prirazovat i samostatne  

peca





----------
* www.inMail.sk - Vasa emailova adresa na cely zivot ZDARMA
* Mail neobsahuje virusy. Zkontrolovane antivirusom NOD32 (www.eset.sk)
* www.SlovakNET.sk - profesionalny webhosting, domena .SK ZADARMO
* Zoner Media Explorer 5 - stiahnite si pomocnika pre digitalnu fotografiu
(zme.zoner.sk)